/*
添加商品：
    方式 - post
    路径 - /admin/api/menus/add
    请求主体：
        name: 商品名称,
        price: 价格,
        imgpath: 图片地址,
        specifications: 规格,
        kind: 种类,
        enable: 是否可购买
    响应 - 成功或失败
*/


const express=require('express')
const router=express.Router()
const multer=require('multer')
const filePath='./upload/'
const path=require('path')
const menuModel=require('../../db/menu')

const { findOne } = require('../../db/category')
const upload = multer({storage: multer.diskStorage({
    destination(req, file, cb) {
        cb(null, filePath)
    },
    filename(req, file, cb) {
        let suffix = path.extname(file.originalname)
        let filename = +new Date() + Math.floor(Math.random() * 899999) + 100000 + suffix
        cb(null, filename)
    }
})})


router.post('/add',upload.single('imgpath'),(req,res)=>{
    // 接收数据.这里需要图片，要用到文件上传下载npm i multer
    let {name,price,specifications,kind, catname}=req.body
    // console.log(req.body);
    // 获取图片路径,获取到的是带反斜杠的路径，反斜杠容易有歧义，将反斜杠替换掉
    let imgpath=req.file.path.replace(/\\/g,'/')
    // console.log(imgpath);
    // 存入数据库
    menuModel.findOne({name},(err,docs)=>{
        if(err){
            throw new Error(err)
        }
        // 查看商品是否已经有了
        if(docs){
            res.json({
                error_code:1,
                msg:'商品已存在'
            })
            return
        }
        menuModel.insertMany({
            name,
            price,
            // 因为规格和种类比较多，会存成数组，所以将其转为字符串
            specifications:specifications.join('===='),
            kind:kind.join('===='),
            imgpath,
            catname,
        },(err,docs)=>{
            if(err){
                throw new Error(err)
            }
            res.json({
                error_code:0,
                msg:'商品添加成功'
            })
           
        })
    })
})

module.exports=router